﻿@model GDoc.Web.Models.AccountGroupModel
@{
    ViewBag.Title = "Grupo de Seguridad";
}
@section Head
{
    <script type="text/javascript">
        $(document).ready(function () {
        });

        function deleteGroup(id, name) {
            showDeleteDialog(
                'Eliminar Grupo',
                '¿Está seguro que desea eliminar el grupo ' + name + '?',
                function () {
                    $.ajax({
                        url: '@Url.Action("RemoveGroup", "Account")',
                        data: { id: id },
                        type: "POST",
                        cache: false,
                        success: function (data) {
                            location.href = '@Url.Action("Users", "Account")';
                        },
                        error: function (data) {
                            showErrorDialog(
                                'Error',
                                'No se ha podido eliminar el grupo ' + name + '.');
                        }
                    });
                });
        }

        function addUsersToGroup(gid) {

            $("#dialog:ui-dialog").dialog("destroy");

            var loadSuceeded = false;

            var dialog = $("#select-users-form").dialog({
                autoOpen: true,
                height: 400,
                width: 350,
                modal: true,
                resizable: false,
                buttons: {
                    Aceptar: function () {
                        if (loadSuceeded) {
                            var selectedIds = '';
                            var selected = $(dialog).find('ul.checklist li input[type="checkbox"]:checked');
                            $(selected).each(function (index, value) { selectedIds += value.id + ',' });

                            $.ajax({
                                url: '@Url.Action("AddUsersToGroup", "Account")',
                                data: { id: gid, uids: selectedIds },
                                type: "POST",
                                cache: false,
                                success: function (data) {

                                    var list = $("ul#all-users-list");

                                    $(data).each(function (index, value) {
                                        $(list).append('<li class="account-user" id="' + value.Id + '"><a href="' + value.Ref + '">' + value.Name + '</a></li>');
                                    });
                                },
                                error: function (data) {
                                    showErrorDialog(
                                        'Error',
                                        'Ha ocurrido un error al agregar los usuarios al grupo ' + name + '. <br />Recargue la página y vuelva a intentarlo.');
                                }
                            });
                        }
                        $(this).dialog("destroy");
                    },
                    Cancelar: function () {
                        $(this).dialog("destroy");
                    }
                },
                close: function () {
                    $(this).dialog("destroy");
                },
                open: function () {
                    $(this).find('span#loading').show();

                    $.ajax({
                        url: '@Url.Action("GetUsersForGroup", "Account")',
                        data: { id: gid },
                        type: "POST",
                        cache: false,
                        success: function (data) {
                            $(dialog).find('span#loading').hide();

                            loadSuceeded = true;

                            var list = $(dialog).find("ul.checklist");
                            $(list).find('li').remove();

                            $(data).each(function (index, value) {
                                $(list).append('<li><input type="checkbox" id="' + value.Id + '"> ' + value.Name + '</li>');
                            });
                        },
                        error: function (data) {
                            loadSuceeded = false;
                            $(dialog).find('span#loading').hide();
                            $(dialog).find('p#message').show();
                            $(dialog).find('p#message').html('Ha ocurrido un error al cargar los usuarios. Cierre la ventana y vuelva a intentarlo.');
                        }
                    });
                }
            });
        }
    </script>
}
<div class="navigation-panel">
    @Html.ActionLink(Model.Account.Name, "Index", "Account") > @Html.ActionLink("Usuarios y Grupos", "Users", "Account") > @Model.Group.Name
</div>
<div class="users-panel list-panel" style="width: 100%; display: inline-block; position: relative; float: left;">
    <div class="list-panel-h3-add-link"><a id="add-new-user" href="javascript:addUsersToGroup(@Model.Group.Id)">Agregar Nuevo Usuario</a> ~ <a id="remove-group" href="javascript:deleteGroup(@Model.Group.Id, '@Html.Encode(Model.Group.Name)')">Eliminar Grupo</a></div>
    <h3>Usuarios</h3>
    <ul id="all-users-list">
        @foreach (var u in Model.Group.Users)
        { 
            <li class="account-user" id="@u.Id">@Html.RouteLink(u.Email, "AccountUser", new { id = u.Id})</li>
        }
    </ul>
</div>
<div id="select-users-form" title="Seleccionar Usuarios" style="display: none">
    <span id="loading"><img src="@Url.Content("~/Content/images/loading.gif")" alt="Cargando usuarios..." /> Cargando usuarios...</span>
    <p id="message" style="display: none"></p>
    <ul class="checklist">        
    </ul>
</div>